﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using Entidad;

namespace Persistencia
{
   public class ActividadDAL
    {
        public List<Actividad> TraerTodos(string strNombre)
        {
            SqlConnection cn = Conexion.Conectar();
            try
            {
                SqlCommand cmd = new SqlCommand("spActividadSel", cn);
                cmd.Parameters.Add(new SqlParameter("@Codigo", null));
                cmd.Parameters.Add(new SqlParameter("@Nombre", strNombre));
                
                cmd.CommandType = CommandType.StoredProcedure;
                SqlDataAdapter da = new SqlDataAdapter(cmd);

                DataSet ds = new DataSet();
                da.Fill(ds, "Actividad");

                /*Creo la lista*/
                List<Actividad> Lista = (from item in ds.Tables[0].AsEnumerable()
                                                 select new Actividad()
                                                 {
                                                     Codigo = item.Field<int>("Codigo"),
                                                     Nombre = item.Field<string>("Nombre"),
                                                     Descripcion = item.Field<string>("Descripcion"),
                                                     
                                                 }).ToList();
                return Lista;

            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                cn.Close();
            }
        }

        public int Insertar(Actividad objActividad)
        {
            SqlConnection cn = Conexion.Conectar();
            try
            {
                SqlCommand cmd = new SqlCommand("spActividadIns", cn);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.Add(new SqlParameter("@Nombre", objActividad.Nombre));
                cmd.Parameters.Add(new SqlParameter("@Descripcion", objActividad.Descripcion));
               
                return cmd.ExecuteNonQuery();
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                cn.Close();
            }
        }
       
        public int Modificar(Actividad objActividad)
        {
            SqlConnection cn = Conexion.Conectar();
            try
            {
                SqlCommand cmd = new SqlCommand("spActividadUpd", cn);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.Add(new SqlParameter("@Codigo", objActividad.Codigo));
                cmd.Parameters.Add(new SqlParameter("@Nombre", objActividad.Nombre));
                cmd.Parameters.Add(new SqlParameter("@Descripcion", objActividad.Descripcion));

                return cmd.ExecuteNonQuery();
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                cn.Close();
            }
        }

        public int Eliminar(int intCodigo)
        {
            SqlConnection cn = Conexion.Conectar();
            try
            {
                SqlCommand cmd = new SqlCommand("spActividadDel", cn);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.Add(new SqlParameter("@Codigo", intCodigo));
                return cmd.ExecuteNonQuery();
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                cn.Close();
            }
        }

    }
}
